package demo.reflect;

/**
 * @author 折戟沉沙铁未销
 * @version V1.0
 * @date 2020/7/8-2020
 * @Description: 这里用一句话描述这个类的作用
 */
public class ReflectTarget {
    //---构造函数---

    ReflectTarget(String str){
        System.out.println("(默认)的构造方法s="+str);
    }
    public ReflectTarget(){
        System.out.println("调用了公有的无参的构造函数");
    }

    public ReflectTarget(char name){
        System.out.println("调用了一个带参数的构造方法，参数值为 "+name);
    }

    public ReflectTarget(String str,int i){
        System.out.println("调用了带有多个参数的构造方法，参数值为"+str+"----"+i);
    }

    protected ReflectTarget(boolean b){
        System.out.println("受保护的构造方法n"+b);
    }

    private ReflectTarget(int index){
        System.out.println("私有的构造方法 序号"+index);
    }


    public static void main(String[] args) {
        //第一种方式获取Class对象
        ReflectTarget reflectTarget=new ReflectTarget();
        Class reflectTargetClass1 = reflectTarget.getClass();
        //第二种方式获取Class对象
        Class reflectTargetClass2 = ReflectTarget.class;
        //第三种方式获取Class对象
        try {
            Class reflectTargetClass3 = Class.forName("demo.reflect.ReflectTarget");
        } catch (ClassNotFoundException e) {
            e.printStackTrace();
        }
    }
}
